package com.market.manage.mapper;

import com.market.manage.po.Article;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface ArticleMapper {
/*mapper中配置了操作数据库的一些方法和sql语句，可以直接通过调用mapper中写好的方法，来进行数据库的操作。这里的mapper使用了mybatis框架*/

    /**
     * 写入文章
     */
    @Insert("INSERT INTO ARTICLE VALUES(default,#{content},#{userId},#{status},#{created},#{title})")
    int insArticle(Article article);

    /**
     * 根据账号查找匹配的文章
     *
     * @param userId
     * @param pageIndex
     * @return
     */
    @Select("SELECT * FROM ARTICLE WHERE FIND_IN_SET(#{userId},USER_ID) OR USER_ID='' OR USER_ID=NULL ORDER BY STATUS, CREATED DESC LIMIT #{pageIndex},6")
    List<Article> selArticle(@Param("userId") Long userId, @Param("pageIndex") Long pageIndex);

    /**
     * 文章数量
     *
     * @return
     */
    @Select("SELECT COUNT(ID) FROM ARTICLE")
    Long count();

    /**
     * 跟新状态
     *
     * @param id
     * @param status
     * @return
     */
    @Update("UPDATE ARTICLE SET STATUS=#{status} WHERE ID=#{id}")
    int updStatus(@Param("id") Long id, @Param("status") String status);

    @Select("SELECT * FROM ARTICLE WHERE ID=#{0}")
    Article getById(Long id);

    @Delete("DELETE FROM ARTICLE WHERE ID=#{0}")
    Long delete(Long id);
}
